#include <stdlib.h>
#include <string>
#include "thread.h"
#include "Moderador.h"
#include "../Common/AceptadorCnx.h"
#include "Login.h"
#include "../Common/mensaje.h"
#include "HiloCliente.h"


using std::string;

int main(int argc, char** argv) {
	if(argc == 3){
		int port = atoi(argv[2]);
		std::string ip = argv[1];

		Moderador queue;

		AceptadorCnx* connectionAcceptor;
		if (ip.length() > 0) {
			connectionAcceptor = new AceptadorCnx(port, (char*) ip.c_str());
		} else {
			connectionAcceptor = new AceptadorCnx(port);
		}
		if (!connectionAcceptor || connectionAcceptor->start() != 0) {
			printf("Error de AceptadorCnx");
			exit(1);
		}

		while (1) {
			Conexion* connection = connectionAcceptor->accept();
			if (!connection) {
				printf("Error de AceptadorCnx");
				continue;
			}
			//agregamos hilos a la conexiones;
			HiloCliente* handler = new HiloCliente(queue, connection);
			if (!handler) {
				std::cout << "No se puedo crear nueva conexion";
				exit(1);
			}
			handler->start();
		}
	}

	exit(0);
}
